<?php

interface Cat_Processor_Monkey_TagInterface extends Cat_ParamHolderInterface
{
	function getOutput();
	
	function __construct( Cat_Processor_Interface $processor );
	
	/**
	 * @return Cat_Processor_Base
	 */
	function getProcessor();
			
	/**
	 * Returns args body
	 * 
	 * @return string
	 */
	function getBody();

    /**
    * Returns body parsed by arg parser
    */
    function getArgs();

    /**
    * Returns arg parser
    */
    function getArgsParser();
	
	/**
	 * Clones all settings to tag object
	 * 
	 * @param $tag Tag object
	 * @return Cat_Processor_Monkey_TagInterface
	 */
	function cloneSettings( Cat_Processor_Monkey_TagInterface $tag );
	
	/**
	 * Gets tag object with configuratin cloned
	 * 
	 * @param $tag Tag name
	 * @return Cat_Processor_Monkey_TagInterface
	 */
	function getTagObject( $tag );
}

?>